1. Field of the Invention
The invention relates in general to fault diagnosis, and more specifically to a generic facility for the construction of knowledge based expert systems for sensor and interactive based process diagnosis.
2. Description of the Prior Art
Expert systems have been typically characterized by a knowledge base and an inference engine. The knowledge base usually consists of rules specific to the task domain and the inference engine usually consists of a set of procedures which manipulate the task specific rules. Prior art examples are programs for medical diagnosis and mineral exploration. These prior art systems have rigid procedural mechanisms for dealing with belief and disbelief and hypotheses. The rules for belief propagation are, in a sense, "hard wired" into the procedural inference engine in a manner similar to the instruction-fetch unit in typical computers. As a result, the structure of the domain-specific rules is also rigid. The domain expert must formulate his knowledge into the exact structures demanded by the form of the rules.
Another prior art expert system, which configures computer systems, demonstrates another method by which an expert system may be constructed. In this system, the basic inference mechanism is stripped of all task-specific knowledge. The task specific knowledge or rule base embodies not only knowledge about the task domain, but also knowledge about how best to apply the rule base in order to accomplish a particular goal. The task-specific domain knowledge and knowledge about task control are integrated into productions or rules. Some productions are used strictly for control, such as rules to add or remove a sub-task context, but most rules have control information integrated into preconditions into their left-hand sides, i.e., the antecedent of the antecedent-consequent production rule form. Integrating the task domain knowledge with the task control knowledge results in a system architecture which is appropriate only to a certain set of highly structured domains. For example, this prior art method does not deal with uncertainty in its reasoning process, and it has no mechanism for "backing up" if it makes a poor decision. The program assumes that it has enough knowledge to bring to bear to correctly choose each rule to apply at every step. In complex task domains, however, building enough control knowledge into the object-level rules is both time-inefficient and more difficult for the "knowledge engineer" (the builder of the rule base) to accomplish. The task of configuring computers may be sufficiently structured that the system can effectively know all there is to know at each step in the computer configuration process, and consequently, it can make the right choices the first time. However, most diagnostic domains are too complex and too ill-structured for this approach to be feasible. While in this prior art system for determining computer configuration, the task control knowledge has been removed from the inference engine, which has certain advantages, it has mixed it with the task domain knowledge, which, in complex domains, has other important disadvantages.
There is also an issue of whether or not input to the expert system is reliable. Many systems merely assume that input from the user is always reliable. Some prior art systems assume that the domain is sufficiently well structured that, with a rudimentary pre-processing package which checks for input consistency and feasibility, any problems with user input can be easily resolved. Other systems try to deal with unreliable input by allowing the user to specify a measure of certainty for each input value. This measure of certainty is then propagated along with the input value throughout the object-level rule base. In effect, the process of reasoning about the reliability of the input is removed from the expert system and assigned to the user. Neither the assumption that dealing with unreliable input is trivial, nor the practice of off-loading the responsibility of handling unreliable input to the user, is an adequate solution for complex systems.
Another prior art system employs techniques referred to as "retrospective analysis" and "meta-diagnosis" to handle the problems of spurious sensor readings and sensor degradation. Retrospective analysis refers to the process of maintaining a history of sampled sensor inputs so that spurious readings can be detected and processed appropriately. In most cases, this involves some sort of averaging technique which is augmented, perhaps, with a conversion to engineering units. Meta-diagnosis is a technique whereby the long-term behavior of individual sensors is monitored. When an aberration is detected, the importance of the sensor is diminished through the use of explicit "parametric-alteration" rules.
Thus, previous expert systems have either chosen to ignore the problem of reasoning about their inputs, or they have included some primitive, procedurally encoded mechanisms which suffer from being difficult to modify or extend. The result is a reasoning capability which is limited by the rigid constraints of the design of the procedural inference engine.